// RAP [rh] File-based editors (and thus file extensions) don't make sense in RAP
///*******************************************************************************
// * Copyright (c) 2000, 2007 IBM Corporation and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// *     IBM Corporation - initial API and implementation
// *     Benjamin Muskalla -	Bug 29633 [EditorMgmt] "Open" menu should
// *     						have Open With-->Other
// *******************************************************************************/
//package org.eclipse.ui.internal.dialogs;
//
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.Iterator;
//import java.util.List;
//import java.util.Map;
//
//import org.eclipse.core.runtime.Assert;
//import org.eclipse.core.runtime.Platform;
//import org.eclipse.core.runtime.content.IContentType;
//import org.eclipse.jface.dialogs.MessageDialog;
//import org.eclipse.jface.preference.IPreferenceStore;
//import org.eclipse.jface.preference.PreferencePage;
//import org.eclipse.jface.window.Window;
//import org.eclipse.osgi.util.NLS;
//import org.eclipse.swt.SWT;
//import org.eclipse.swt.graphics.Image;
//import org.eclipse.swt.layout.GridData;
//import org.eclipse.swt.layout.GridLayout;
//import org.eclipse.swt.widgets.Button;
//import org.eclipse.swt.widgets.Composite;
//import org.eclipse.swt.widgets.Control;
//import org.eclipse.swt.widgets.Event;
//import org.eclipse.swt.widgets.Label;
//import org.eclipse.swt.widgets.Listener;
//import org.eclipse.swt.widgets.Table;
//import org.eclipse.swt.widgets.TableItem;
//import org.eclipse.ui.IEditorDescriptor;
//import org.eclipse.ui.IFileEditorMapping;
//import org.eclipse.ui.IWorkbench;
//import org.eclipse.ui.IWorkbenchPreferencePage;
//import org.eclipse.ui.dialogs.EditorSelectionDialog;
//import org.eclipse.ui.dialogs.PreferenceLinkArea;
//import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
//import org.eclipse.ui.internal.WorkbenchMessages;
//import org.eclipse.ui.internal.WorkbenchPlugin;
//import org.eclipse.ui.internal.registry.EditorDescriptor;
//import org.eclipse.ui.internal.registry.EditorRegistry;
//import org.eclipse.ui.internal.registry.FileEditorMapping;
//import org.eclipse.ui.internal.util.PrefUtil;
//import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
//
///**
// * The file editors page presents the collection of file names and extensions
// * for which the user has registered editors. It also lets the user add new
// * internal or external (program) editors for a given file name and extension.
// *
// * The user can add an editor for either a specific file name and extension
// * (e.g. report.doc), or for all file names of a given extension (e.g. *.doc)
// *
// * The set of registered editors is tracked by the EditorRegistery
// * available from the workbench plugin.
// */
//public class FileEditorsPreferencePage extends PreferencePage implements
//        IWorkbenchPreferencePage, Listener {
//	
//    private static final String DATA_EDITOR = "editor"; //$NON-NLS-1$
//
//    private static final String DATA_FROM_CONTENT_TYPE = "type"; //$NON-NLS-1$
//    
//	protected Table resourceTypeTable;
//
//    protected Button addResourceTypeButton;
//
//    protected Button removeResourceTypeButton;
//
//    protected Table editorTable;
//
//    protected Button addEditorButton;
//
//    protected Button removeEditorButton;
//
//    protected Button defaultEditorButton;
//
//    protected Label editorLabel;
//
//    protected IWorkbench workbench;
//
//    protected List imagesToDispose;
//
//    protected Map editorsToImages;
//
//    /**
//     * Add a new resource type to the collection shown in the top of the page.
//     * This is typically called after the extension dialog is shown to the user.
//     * 
//     * @param newName the new name
//     * @param newExtension the new extension
//     */
//    public void addResourceType(String newName, String newExtension) {
//        // Either a file name or extension must be provided
//        Assert.isTrue((newName != null && newName.length() != 0)
//                || (newExtension != null && newExtension.length() != 0));
//
//        // Wild card only valid by itself (i.e. rep* is not valid)
//        // And must have an extension
//        int index = newName.indexOf('*');
//        if (index > -1) {
//            Assert.isTrue(index == 0 && newName.length() == 1);
//            Assert.isTrue(newExtension != null && newExtension.length() != 0);
//        }
//
//        // Find the index at which to insert the new entry.
//        String newFilename = (newName + (newExtension == null
//                || newExtension.length() == 0 ? "" : "." + newExtension)).toUpperCase();//$NON-NLS-1$ //$NON-NLS-2$
//        IFileEditorMapping resourceType;
//        TableItem[] items = resourceTypeTable.getItems();
//        boolean found = false;
//        int i = 0;
//
//        while (i < items.length && !found) {
//            resourceType = (IFileEditorMapping) items[i].getData();
//            int result = newFilename.compareToIgnoreCase(resourceType
//                    .getLabel());
//            if (result == 0) {
//                // Same resource type not allowed!
//                MessageDialog
//                        .openInformation(
//                                getControl().getShell(),
//                                WorkbenchMessages.get().FileEditorPreference_existsTitle,
//                                WorkbenchMessages.get().FileEditorPreference_existsMessage);
//                return;
//            }
//
//            if (result < 0) {
//				found = true;
//			} else {
//				i++;
//			}
//        }
//
//        // Create the new type and insert it
//        resourceType = new FileEditorMapping(newName, newExtension);
//        TableItem item = newResourceTableItem(resourceType, i, true);
//        resourceTypeTable.setFocus();
//        resourceTypeTable.showItem(item);
//        fillEditorTable();
//    }
//
//    /**
//     * Creates the page's UI content.
//     */
//    protected Control createContents(Composite parent) {
//        imagesToDispose = new ArrayList();
//        editorsToImages = new HashMap(50);
//
//        // define container & its gridding
//        Composite pageComponent = new Composite(parent, SWT.NULL);
//        GridLayout layout = new GridLayout();
//        layout.numColumns = 2;
//        layout.marginWidth = 0;
//        layout.marginHeight = 0;
//        pageComponent.setLayout(layout);
//        GridData data = new GridData();
//        data.verticalAlignment = GridData.FILL;
//        data.horizontalAlignment = GridData.FILL;
//        pageComponent.setLayoutData(data);
//
//        //layout the contents
//
//        PreferenceLinkArea contentTypeArea = new PreferenceLinkArea(pageComponent, SWT.NONE,
//                "org.eclipse.ui.preferencePages.ContentTypes", WorkbenchMessages.get().FileEditorPreference_contentTypesRelatedLink,//$NON-NLS-1$
//                (IWorkbenchPreferenceContainer) getContainer(),null);
//        
//        data = new GridData(GridData.FILL_HORIZONTAL | GridData.GRAB_HORIZONTAL);
//        contentTypeArea.getControl().setLayoutData(data);
//
//        //layout the top table & its buttons
//        Label label = new Label(pageComponent, SWT.LEFT);
//        label.setText(WorkbenchMessages.get().FileEditorPreference_fileTypes); 
//        data = new GridData();
//        data.horizontalAlignment = GridData.FILL;
//        data.horizontalSpan = 2;
//        label.setLayoutData(data);
//
//        resourceTypeTable = new Table(pageComponent, SWT.SINGLE | SWT.BORDER
//                | SWT.FULL_SELECTION);
//        resourceTypeTable.addListener(SWT.Selection, this);
//        resourceTypeTable.addListener(SWT.DefaultSelection, this);
//        data = new GridData(GridData.FILL_HORIZONTAL);
//
//        int availableRows = DialogUtil.availableRows(pageComponent);
//
//        data.heightHint = resourceTypeTable.getItemHeight()
//                * (availableRows / 8);
//        resourceTypeTable.setLayoutData(data);
//
//        Composite groupComponent = new Composite(pageComponent, SWT.NULL);
//        GridLayout groupLayout = new GridLayout();
//        groupLayout.marginWidth = 0;
//        groupLayout.marginHeight = 0;
//        groupComponent.setLayout(groupLayout);
//        data = new GridData();
//        data.verticalAlignment = GridData.FILL;
//        data.horizontalAlignment = GridData.FILL;
//        groupComponent.setLayoutData(data);
//
//        addResourceTypeButton = new Button(groupComponent, SWT.PUSH);
//        addResourceTypeButton.setText(WorkbenchMessages.get().FileEditorPreference_add); 
//        addResourceTypeButton.addListener(SWT.Selection, this);
//        addResourceTypeButton.setLayoutData(data);
//        setButtonLayoutData(addResourceTypeButton);
//
//        removeResourceTypeButton = new Button(groupComponent, SWT.PUSH);
//        removeResourceTypeButton.setText(WorkbenchMessages.get().FileEditorPreference_remove);
//        removeResourceTypeButton.addListener(SWT.Selection, this);
//        setButtonLayoutData(removeResourceTypeButton);
//
//        //Spacer
//        label = new Label(pageComponent, SWT.LEFT);
//        data = new GridData();
//        data.horizontalAlignment = GridData.FILL;
//        data.horizontalSpan = 2;
//        label.setLayoutData(data);
//
//        // layout the bottom table & its buttons
//        editorLabel = new Label(pageComponent, SWT.LEFT);
//        editorLabel.setText(WorkbenchMessages.get().FileEditorPreference_associatedEditors);
//        data = new GridData();
//        data.horizontalAlignment = GridData.FILL;
//        data.horizontalSpan = 2;
//        editorLabel.setLayoutData(data);
//
//        editorTable = new Table(pageComponent, SWT.SINGLE | SWT.BORDER);
//        editorTable.addListener(SWT.Selection, this);
//        editorTable.addListener(SWT.DefaultSelection, this);
//        data = new GridData(GridData.FILL_BOTH);
//        data.heightHint = editorTable.getItemHeight() * 7;
//        editorTable.setLayoutData(data);
//
//        groupComponent = new Composite(pageComponent, SWT.NULL);
//        groupLayout = new GridLayout();
//        groupLayout.marginWidth = 0;
//        groupLayout.marginHeight = 0;
//        groupComponent.setLayout(groupLayout);
//        data = new GridData();
//        data.verticalAlignment = GridData.FILL;
//        data.horizontalAlignment = GridData.FILL;
//        groupComponent.setLayoutData(data);
//
//        addEditorButton = new Button(groupComponent, SWT.PUSH);
//        addEditorButton.setText(WorkbenchMessages.get().FileEditorPreference_addEditor);
//        addEditorButton.addListener(SWT.Selection, this);
//        addEditorButton.setLayoutData(data);
//        setButtonLayoutData(addEditorButton);
//
//        removeEditorButton = new Button(groupComponent, SWT.PUSH);
//        removeEditorButton.setText(WorkbenchMessages.get().FileEditorPreference_removeEditor); 
//        removeEditorButton.addListener(SWT.Selection, this);
//        setButtonLayoutData(removeEditorButton);
//
//        defaultEditorButton = new Button(groupComponent, SWT.PUSH);
//        defaultEditorButton.setText(WorkbenchMessages.get().FileEditorPreference_default);
//        defaultEditorButton.addListener(SWT.Selection, this);
//        setButtonLayoutData(defaultEditorButton);
//
//        fillResourceTypeTable();
//        if (resourceTypeTable.getItemCount() > 0) {
//            resourceTypeTable.setSelection(0);
//        }
//        fillEditorTable();
//        updateEnabledState();
//
//        workbench.getHelpSystem().setHelp(parent,
//				IWorkbenchHelpContextIds.FILE_EDITORS_PREFERENCE_PAGE);
//        applyDialogFont(pageComponent);
//
//        return pageComponent;
//    }
//
//    /**
//     * The preference page is going to be disposed. So deallocate all allocated
//     * SWT resources that aren't disposed automatically by disposing the page
//     * (i.e fonts, cursors, etc). Subclasses should reimplement this method to 
//     * release their own allocated SWT resources.
//     */
//    public void dispose() {
//        super.dispose();
//        if (imagesToDispose != null) {
//            for (Iterator e = imagesToDispose.iterator(); e.hasNext();) {
//                ((Image) e.next()).dispose();
//            }
//            imagesToDispose = null;
//        }
//        if (editorsToImages != null) {
//            for (Iterator e = editorsToImages.values().iterator(); e.hasNext();) {
//                ((Image) e.next()).dispose();
//            }
//            editorsToImages = null;
//        }
//    }
//
//    /**
//     * Hook method to get a page specific preference store. Reimplement this
//     * method if a page don't want to use its parent's preference store.
//     */
//    protected IPreferenceStore doGetPreferenceStore() {
//        return WorkbenchPlugin.getDefault().getPreferenceStore();
//    }
//
//    protected void fillEditorTable() {
//        editorTable.removeAll();
//        FileEditorMapping resourceType = getSelectedResourceType();
//        if (resourceType != null) {
//            IEditorDescriptor[] array = resourceType.getEditors();
//            for (int i = 0; i < array.length; i++) {
//                IEditorDescriptor editor = array[i];
//                TableItem item = new TableItem(editorTable, SWT.NULL);
//                item.setData(DATA_EDITOR, editor);
//                // Check if it is the default editor
//                String defaultString = null;
//                if (resourceType != null) {
//                    if (resourceType.getDefaultEditor() == editor && resourceType.isDeclaredDefaultEditor(editor)) {
//						defaultString = WorkbenchMessages.get().FileEditorPreference_defaultLabel;
//					}
//                }
//
//                if (defaultString != null) {
//                    item.setText(editor.getLabel() + " " + defaultString); //$NON-NLS-1$
//                } else {
//                    item.setText(editor.getLabel());
//                }
//                item.setImage(getImage(editor));
//            }
//            
//            // now add any content type editors
//			EditorRegistry registry = (EditorRegistry) WorkbenchPlugin
//					.getDefault().getEditorRegistry();
//			IContentType[] contentTypes = Platform.getContentTypeManager()
//					.findContentTypesFor(resourceType.getLabel());
//			for (int i = 0; i < contentTypes.length; i++) {
//				array = registry.getEditorsForContentType(contentTypes[i]);
//				for (int j = 0; j < array.length; j++) {
//					IEditorDescriptor editor = array[j];
//					// don't add duplicates
//					TableItem[] items = editorTable.getItems();
//					TableItem foundItem = null;
//					for (int k = 0; k < items.length; k++) {
//						if (items[k].getData(DATA_EDITOR).equals(editor)) {
//							foundItem = items[k];
//							break;
//						}
//					}
//					if (foundItem == null) {
//						TableItem item = new TableItem(editorTable, SWT.NULL);
//						item.setData(DATA_EDITOR, editor);
//						item.setData(DATA_FROM_CONTENT_TYPE, contentTypes[i]);
//						setLockedItemText(item, editor.getLabel());
//						item.setImage(getImage(editor));
//					} else { // update the item to reflect its origin
//						foundItem.setData(DATA_FROM_CONTENT_TYPE, contentTypes[i]);
//						setLockedItemText(foundItem, foundItem.getText());
//					}
//				}
//			}
//            
//        }
//    }
//
//    /**
//	 * Set the locked message on the item. Assumes the item has an instance of
//	 * IContentType in the data map.
//	 * 
//	 * @param item the item to set
//	 * @param baseLabel the base label
//	 */
//	private void setLockedItemText(TableItem item, String baseLabel) {
//		item.setText(NLS
//				.bind(WorkbenchMessages.get().FileEditorPreference_isLocked,
//						baseLabel, ((IContentType) item
//								.getData(DATA_FROM_CONTENT_TYPE)).getName()));
//	}
//    
//    /**
//	 * Place the existing resource types in the table
//	 */
//    protected void fillResourceTypeTable() {
//        // Populate the table with the items
//        IFileEditorMapping[] array = WorkbenchPlugin.getDefault()
//                .getEditorRegistry().getFileEditorMappings();
//        for (int i = 0; i < array.length; i++) {
//            FileEditorMapping mapping = (FileEditorMapping) array[i];
//            mapping = (FileEditorMapping) mapping.clone(); // want a copy
//            newResourceTableItem(mapping, i, false);
//        }
//    }
//
//    /**
//     * Returns the image associated with the given editor.
//     */
//    protected Image getImage(IEditorDescriptor editor) {
//        Image image = (Image) editorsToImages.get(editor);
//        if (image == null) {
//            image = editor.getImageDescriptor().createImage();
//            editorsToImages.put(editor, image);
//        }
//        return image;
//    }
//
//    protected FileEditorMapping getSelectedResourceType() {
//        TableItem[] items = resourceTypeTable.getSelection();
//        if (items.length > 0) {
//            return (FileEditorMapping) items[0].getData(); //Table is single select
//        }
//        return null;        
//    }
//
//    protected IEditorDescriptor[] getAssociatedEditors() {
//        if (getSelectedResourceType() == null) {
//			return null;
//		}
//        if (editorTable.getItemCount() > 0) {
//            ArrayList editorList = new ArrayList();
//            for (int i = 0; i < editorTable.getItemCount(); i++) {
//				editorList.add(editorTable.getItem(i).getData(DATA_EDITOR));
//			}
//
//            return (IEditorDescriptor[]) editorList
//                    .toArray(new IEditorDescriptor[editorList.size()]);
//        } 
//        return null;
//    }
//
//    public void handleEvent(Event event) {
//        if (event.widget == addResourceTypeButton) {
//            promptForResourceType();
//        } else if (event.widget == removeResourceTypeButton) {
//            removeSelectedResourceType();
//        } else if (event.widget == addEditorButton) {
//            promptForEditor();
//        } else if (event.widget == removeEditorButton) {
//            removeSelectedEditor();
//        } else if (event.widget == defaultEditorButton) {
//            setSelectedEditorAsDefault();
//        } else if (event.widget == resourceTypeTable) {
//            fillEditorTable();
//        }
//
//        updateEnabledState();
//
//    }
//
//    /**
//     * @see IWorkbenchPreferencePage
//     */
//    public void init(IWorkbench aWorkbench) {
//        this.workbench = aWorkbench;
//        noDefaultAndApplyButton();
//    }
//
//    /*
//     * Create a new <code>TableItem</code> to represent the resource
//     * type editor description supplied.
//     */
//    protected TableItem newResourceTableItem(IFileEditorMapping mapping,
//            int index, boolean selected) {
//        Image image = mapping.getImageDescriptor().createImage(false);
//        if (image != null) {
//			imagesToDispose.add(image);
//		}
//
//        TableItem item = new TableItem(resourceTypeTable, SWT.NULL, index);
//        if (image != null) {
//            item.setImage(image);
//        }
//        item.setText(mapping.getLabel());
//        item.setData(mapping);
//        if (selected) {
//            resourceTypeTable.setSelection(index);
//        }
//
//        return item;
//    }
//
//    /**
//     * This is a hook for sublcasses to do special things when the ok
//     * button is pressed.
//     * For example reimplement this method if you want to save the 
//     * page's data into the preference bundle.
//     */
//    public boolean performOk() {
//        TableItem[] items = resourceTypeTable.getItems();
//        FileEditorMapping[] resourceTypes = new FileEditorMapping[items.length];
//        for (int i = 0; i < items.length; i++) {
//            resourceTypes[i] = (FileEditorMapping) (items[i].getData());
//        }
//        EditorRegistry registry = (EditorRegistry) WorkbenchPlugin.getDefault()
//                .getEditorRegistry(); // cast to allow save to be called
//        registry.setFileEditorMappings(resourceTypes);
//        registry.saveAssociations();
//        
//        PrefUtil.savePrefs();
//        return true;
//    }
//
//    /**
//     * Prompt for editor.
//     */
//    public void promptForEditor() {
//        EditorSelectionDialog dialog = new EditorSelectionDialog(getControl()
//                .getShell());
//        dialog.setEditorsToFilter(getAssociatedEditors());
//        dialog
//                .setMessage(NLS.bind(WorkbenchMessages.get().Choose_the_editor_for_file,getSelectedResourceType().getLabel() ));
//        if (dialog.open() == Window.OK) {
//            EditorDescriptor editor = (EditorDescriptor) dialog
//                    .getSelectedEditor();
//            if (editor != null) {
//                int i = editorTable.getItemCount();
//                boolean isEmpty = i < 1;
//                TableItem item = new TableItem(editorTable, SWT.NULL, i);
//                item.setData(DATA_EDITOR, editor);
//                if (isEmpty) {
//					item
//                            .setText(editor.getLabel()
//                                    + " " + WorkbenchMessages.get().FileEditorPreference_defaultLabel); //$NON-NLS-1$
//				} else {
//					item.setText(editor.getLabel());
//				}
//                item.setImage(getImage(editor));
//                editorTable.setSelection(i);
//                editorTable.setFocus();
//                getSelectedResourceType().addEditor(editor);
//				if (isEmpty) {
//					getSelectedResourceType().setDefaultEditor(editor);
//				}
//                updateSelectedResourceType(); //in case of new default
//            }
//        }
//    }
//
//    /**
//     * Prompt for resource type.
//     */
//    public void promptForResourceType() {
//        FileExtensionDialog dialog = new FileExtensionDialog(getControl()
//				.getShell(), WorkbenchMessages.get().FileExtension_shellTitle,
//				IWorkbenchHelpContextIds.FILE_EXTENSION_DIALOG,
//				WorkbenchMessages.get().FileExtension_dialogTitle,
//				WorkbenchMessages.get().FileExtension_fileTypeMessage,
//				WorkbenchMessages.get().FileExtension_fileTypeLabel);
//        if (dialog.open() == Window.OK) {
//            String name = dialog.getName();
//            String extension = dialog.getExtension();
//            addResourceType(name, extension);
//        }
//    }
//
//    /**
//     * Remove the editor from the table
//     */
//    public void removeSelectedEditor() {
//        TableItem[] items = editorTable.getSelection();
//        boolean defaultEditor = editorTable.getSelectionIndex() == 0;
//        if (items.length > 0) {
//            getSelectedResourceType().removeEditor(
//                    (EditorDescriptor) items[0].getData(DATA_EDITOR));
//            items[0].dispose(); //Table is single selection
//        }
//        if (defaultEditor && editorTable.getItemCount() > 0) {
//            TableItem item = editorTable.getItem(0);
//            // explicitly set the new editor first editor to default
//            getSelectedResourceType().setDefaultEditor(
//					(EditorDescriptor) item.getData(DATA_EDITOR));
//            if (item != null) {
//				item
//                        .setText(((EditorDescriptor) (item.getData(DATA_EDITOR)))
//                                .getLabel()
//                                + " " + WorkbenchMessages.get().FileEditorPreference_defaultLabel); //$NON-NLS-1$
//			}
//			if (!isEditorRemovable(item)) {
//				setLockedItemText(item, item.getText());
//			}
//		}
//
//    }
//
//    /**
//     * Remove the type from the table
//     */
//    public void removeSelectedResourceType() {
//        TableItem[] items = resourceTypeTable.getSelection();
//        if (items.length > 0) {
//            items[0].dispose(); //Table is single selection
//        }
//        //Clear out the editors too
//        editorTable.removeAll();
//    }
//
//    /**
//     * Add the selected editor to the default list.
//     */
//    public void setSelectedEditorAsDefault() {
//        TableItem[] items = editorTable.getSelection();
//        if (items.length > 0) {
//            // First change the label of the old default
//            TableItem oldDefaultItem = editorTable.getItem(0);
//            oldDefaultItem
//                    .setText(((EditorDescriptor) oldDefaultItem.getData(DATA_EDITOR))
//                            .getLabel());
//            // update the label to reflect the locked state
//            if (!isEditorRemovable(oldDefaultItem)) {
//				setLockedItemText(oldDefaultItem, oldDefaultItem.getText());
//			}
//            // Now set the new default
//            EditorDescriptor editor = (EditorDescriptor) items[0].getData(DATA_EDITOR);
//            getSelectedResourceType().setDefaultEditor(editor);
//            IContentType fromContentType = (IContentType) items[0].getData(DATA_FROM_CONTENT_TYPE);
//            items[0].dispose(); //Table is single selection
//            TableItem item = new TableItem(editorTable, SWT.NULL, 0);
//            item.setData(DATA_EDITOR, editor);
//            if (fromContentType != null) {
//				item.setData(DATA_FROM_CONTENT_TYPE, fromContentType);
//			}
//            item
//                    .setText(editor.getLabel()
//                            + " " + WorkbenchMessages.get().FileEditorPreference_defaultLabel); //$NON-NLS-1$
//            item.setImage(getImage(editor));
//            if (!isEditorRemovable(item)) {
//				setLockedItemText(item, item.getText());
//			}
//			editorTable.setSelection(new TableItem[] { item });
//        }
//    }
//
//    /**
//     * Update the enabled state.
//     */
//    public void updateEnabledState() {
//        //Update enabled state
//        boolean resourceTypeSelected = resourceTypeTable.getSelectionIndex() != -1;
//        boolean editorSelected = editorTable.getSelectionIndex() != -1;
//
//        removeResourceTypeButton.setEnabled(resourceTypeSelected);
//        editorLabel.setEnabled(resourceTypeSelected);
//        addEditorButton.setEnabled(resourceTypeSelected);
//        removeEditorButton.setEnabled(editorSelected && isEditorRemovable());
//        defaultEditorButton.setEnabled(editorSelected);
//    }
//    
//    /**
//	 * Return whether the selected editor is removable. An editor is removable
//	 * if it is not submitted via a content-type binding.
//	 * 
//	 * @return whether the selected editor is removable
//	 * @since 3.1
//	 */
//    private boolean isEditorRemovable() {
//		TableItem[] items = editorTable.getSelection();
//		if (items.length > 0) {
//			return isEditorRemovable(items[0]);
//		}
//		return false;
//	}
//    
//    /**
//	 * Return whether the given editor is removable. An editor is removable
//	 * if it is not submitted via a content-type binding.
//	 * 
//	 * @param item the item to test
//	 * @return whether the selected editor is removable
//	 * @since 3.1
//	 */
//    private boolean isEditorRemovable(TableItem item) {
//		IContentType fromContentType = (IContentType) item.getData(DATA_FROM_CONTENT_TYPE);
//		return fromContentType == null;
//	}
//
//	/**
//	 * Update the selected type.
//	 */
//    public void updateSelectedResourceType() {
//        // TableItem item = resourceTypeTable.getSelection()[0]; //Single select
//        //  Image image = ((IFileEditorMapping)item.getData()).getImageDescriptor().getImage();
//        //  imagesToDispose.addElement(image);
//        //  item.setImage(image);
//    }
//}
